﻿using FaceWebServer.DB.Device;
using FaceWebServer.Interface;
using FaceWebServer.Utility.VerifyAttribute;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FC8280TServer.Controllers.FaceDevice
{
    /// <summary>
    /// 更新设备的参数
    /// </summary>
    public class DeviceUpdateParameter :DeviceBaseParameter
    {
        /// <susnmmary>
        /// 设备SN
        /// </summary>
        [VerifyNum(iMax: int.MaxValue, iMin: 1, errCode: 100, sErrorDesc: "设备ID不能为空")]
        public int ID { get; set; }

        

        /// <summary>
        /// 讲参数拷贝到 FaceDeviceDetail
        /// </summary>
        /// <param name="target"></param>
        /// <returns></returns>
        public FaceDeviceDetail CopyTo(FaceDeviceDetail target)
        {
            var src = this;
            target.DeviceID = src.DeviceID;//设备ID
            target.DeviceName = src.DeviceName;//姓名
            target.ParameterVolume = src.ParameterVolume;//音量大小(范围0-84)
            target.ParameterPreview = src.ParameterPreview;//活体检测,1打开，0关闭
            //target.ParameterMoreFace = src.ParameterMoreFace;//设置多人脸检测值
            target.ParameterPolling = src.ParameterPolling;//主动触发云端轮训时间（以秒为单位）
            target.ParameterLightTimeout = src.ParameterLightTimeout;//白补光灯亮灭时间
            target.ParameterLightSwitch = src.ParameterLightSwitch;//补光灯开关：0:关闭，1：打开(补光灯打开才能设置自动补光)
            target.ParameterLightActive = src.ParameterLightActive;//自动补光：0:关闭，1：打开
            target.ParameterFaceThreshold = src.ParameterFaceThreshold;//人脸识别阈值
            target.ParameterTempThresholdMax = src.ParameterTempThresholdMax;//温度比对阈值（最大值）
            target.ParameterTempThresholdMin = src.ParameterTempThresholdMin;//温度比对阈值（最小值）
            target.ParameterTempPattern = src.ParameterTempPattern;//体温筛选，0关闭，1打开
            //target.ParameterSystemTime = src.ParameterSystemTime;//同步系统时间（时间戳，比如：1584427174对应是2020-03-1714:39:34）
            target.ParameterSaveExternalvisitors = src.ParameterSaveExternalvisitors;//是否存储非雇员识别记录，0:不存储，1:存储
            target.ParameterMask = src.ParameterMask;//1：打开口罩检测，其他：关闭
            target.ParameterCompensate = src.ParameterCompensate;//0~1000,温度补偿值
            target.ParameterLoginPassword = src.ParameterLoginPassword;//菜单密码
            /*
            target.ParameterNetworkSwitch = src.ParameterNetworkSwitch;//有线网络开关，1:打开，0:关闭
            target.ParameterNetworkIpActive = src.ParameterNetworkIpActive;//有线网络自动ip，1:开，0:关
            target.ParameterNetworkIpUrl = src.ParameterNetworkIpUrl;//有线网络Ip地址(“//192.168.0.110”)
            target.ParameterNetworkSubnetMask = src.ParameterNetworkSubnetMask;//有线网络子网掩码(“//255.255.255.0”)
            target.ParameterNetworkGteway = src.ParameterNetworkGteway;//有线网络网关(“//192.168.0.1”)
            target.ParameterNetworkDns = src.ParameterNetworkDns;//Dns(“//192.168.0.1”)
            target.ParameterWifiSwitch = src.ParameterWifiSwitch;//无线网开关，1:开，0:关
            target.ParameterWifiName = src.ParameterWifiName;//无线网账号
            target.ParameterWifiPassWord = src.ParameterWifiPassWord;//无线网密码
            target.ParameterHotspotSwitch = src.ParameterHotspotSwitch;//热点开关,1:开，0:关
            target.ParameterHotspotName = src.ParameterHotspotName;//热点账号
            target.ParameterHotspotPassword = src.ParameterHotspotPassword;//热点密码
            */
            target.ParameterFahrenheitSwitch = src.ParameterFahrenheitSwitch;//开启华氏温度,1:开，0:关
            target.ParameterBdhc = src.ParameterBdhc;//海曼模组DBHC参数，范围200-400
            target.ParameterBdlc = src.ParameterBdlc;//海曼模组DBLC参数，范围200-400
            target.ParameterCent = src.ParameterCent;//海曼模组测温中心点坐标参数，限制4位数、必须都是数字（如0918、1616）
            target.ParameterSavePicture = src.ParameterSavePicture;//保存现场图片0，不保存；1，保存
            target.ParameterAccessType = src.ParameterAccessType;//出入类型0,入门；1，出门
            target.ParameterWgFormat = src.ParameterWgFormat;//WG输出格式26/34
            target.ParameterKeepOpenDoor = src.ParameterKeepOpenDoor;//开门保持时间1-65535（s）
            target.ParameterLaissezSwitch = src.ParameterLaissezSwitch;//免验证开门1--启用；0--禁用
            target.ParameterRecgInterval = src.ParameterRecgInterval;//识别间隔0--禁用;1-65535（s）
            target.ParameterIntervalRecoSwitch = src.ParameterIntervalRecoSwitch;//间隔记录存储设置0,关闭；1，打开
            target.ParameterDoorSensor = src.ParameterDoorSensor;//门磁类型	0，常闭；1，常开；2，无
            target.ParameterDoorSensorDelay = src.ParameterDoorSensorDelay;//开门超时时间，门打开超过这个时间就报警	5-255（s）
            target.ParameterDoorAlarmSwitch = src.ParameterDoorAlarmSwitch;//门磁报警，0，关闭；1，开启
            target.ParameterMaskThreshold = src.ParameterMaskThreshold;//口罩阈值
            target.ParameterCompanyName = src.ParameterCompanyName;//主界面设置--公司名称
            target.ParameterVoiceMode = src.ParameterVoiceMode;//语音模式0,不播报；1，播放名字;2,播放问候语;3,播放名字和问候语
            target.ParameterGrettings = src.ParameterGrettings;//问候语0，请通行;1,欢迎光临;2，时间问候语
            target.ParameterStrangerVoice = src.ParameterStrangerVoice;//陌生人语音0，不播报;1,播报假体;2，播报陌生人；3，播报假体和陌生人
            target.ParameterBrightness = src.ParameterBrightness;//亮度设置1-10
            target.ParameterLanguageChoose = src.ParameterLanguageChoose;//语言选择0，中文；1，英文；2，繁体
            target.ParameterDistance = src.ParameterDistance;//识别距离50-150（cm）
            target.ParameterCloudserverAddress = src.ParameterCloudserverAddress;//服务器地址
            target.ParameterSerialNum = src.ParameterSerialNum;//序列号
            target.ParameterManufacturer = src.ParameterManufacturer;//制造商
            target.ParameterWebsite = src.ParameterWebsite;//网址
            target.ParameterProductionDate = src.ParameterProductionDate;//生产日期
            return target;
        }
    }
}
